<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>operator</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">C/C++ Keywords</a> &gt; <a href=
    "operator.html">operator</a>
  </div>

  <div class="name-format">
    operator
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  return-type class-name::operator#(parameter-list) {
  ...
  }
  return-type operator#(parameter-list) {
  ...
  }
</pre>

  <p>The operator keyword is used to overload operators. The sharp sign
  (#) listed above in the syntax description represents the operator
  which will be overloaded. If part of a class, the <em>class-name</em>
  should be specified. For unary operators, <em>parameter-list</em>
  should be empty, and for binary operators, <em>parameter-list</em>
  should contain the operand on the right side of the operator (the
  operand on the left side is passed as <a href=
  "this.html">this</a>).</p>

  <p>For the non-member operator overload function, the operand on the
  left side should be passed as the first parameter and the operand on
  the right side should be passed as the second parameter.</p>

  <p>You cannot overload the #, ##, ., :, .*, or ? tokens.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="this.html">this</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
